﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

using Arquitetura.Architectural.Model;
using Arquitetura.Model;
using Arquitetura.BusinessLogic;

namespace Arquitetura.Service.Contract
{
    [ServiceContract]
    public interface ISecretariaService
    {
        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result<IList<Aluno>> ListarAluno();

        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result InserirAluno(Aluno aluno);

        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result<IList<Aluno>> ListarAlunoFiltro(Aluno alunoFiltro, int skipCount, int takeCount, string sortExpression);

        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result<int> ContarAlunoFiltro(Aluno alunoFiltro);

        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result<Aluno> ConsultarAluno(Aluno aluno);

        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result AlterarAluno(Aluno aluno);

        [OperationContract(IsInitiating = true, IsTerminating = false)]
        Result ExcluirAluno(Aluno aluno);
    }
}